package initialize

import (
	v1 "authserver/api/v1"
	"authserver/global"
	"authserver/middleware"
	"github.com/gin-gonic/gin"
)

// 初始化总路由

func Routers() *gin.Engine {
	var Router = gin.New()
	Router.Use(gin.Recovery())

	//Router.Use(gin.Logger()).Use(gin.Recovery())
	// Router.Use(middleware.LoadTls())  // 打开就能玩https了
	global.GVA_LOG.Debug("use middleware logger")
	// 跨域
	Router.Use(middleware.Cors())
	global.GVA_LOG.Debug("use middleware cors")

	global.GVA_LOG.Debug("register swagger handler")

	//
	//Router.GET("/",v1.VisitShortUrl)

	// 方便统一添加路由组前缀 多服务器上线使用
	ApiGroup := Router.Group("/api")

	ApiGroup.GET("regAuth", v1.RegAuth)                  // 设备注册
	ApiGroup.GET("checkUpdate", v1.CheckUpdate)          // 检测终端版本接口
	ApiGroup.GET("parseDy", v1.ParseDy)                  // 抖音链接去水印
	ApiGroup.GET("parseKs", v1.ParseKs)                  // 快手链接去水印
	ApiGroup.POST("touristLogin", v1.AppletTouristLogin) // 微信游客登录，获取openid
	ApiGroup.GET("downloadVideo", v1.DownloadVideo)      // 下载视频
	ApiGroup.POST("shortUrl", v1.GetShortRul)            // 生成短连接
	ApiGroup.POST("ttsAudio", v1.TtsAudio)               // 文字转语音
	ApiGroup.POST("voiceList", v1.GetVoiceList)          // 语音列表
	ApiGroup.POST("ttsAudioSync", v1.TtsAudioSync)       // 文字转语音，异步
	ApiGroup.POST("syncResult", v1.CheckExportResult)    // 查询结果
	ApiGroup.POST("dyTest", v1.DyTest)                   // 抖音网站测试




	XyGroup := Router.Group("/xy")
	XyGroup.GET("/addLog", v1.AddXyRecord)    // 日志记录
	XyGroup.GET("/getLogSta", v1.GetXyLogSta) // 查统计

	StGroup := Router.Group("/st")
	StGroup.GET(":shortKey", v1.VisitShortUrl) // 下载视频

	Api2Group := Router.Group("/api2")
	Api2Group.POST("addAudio", v1.AddAudio)                           // 添加音频
	Api2Group.POST("getAllClass", v1.GetAllAudioClass)                // 年级列表
	Api2Group.POST("getAllClassGroup", v1.GetAllClassGroup)           // 获取所有书目
	Api2Group.POST("getAllClassGroupAudio", v1.GetAllClassGroupAudio) // 获取所有音频

    InvoiceCheckGroup := Router.Group("/api/invoice")
    InvoiceCheckGroup.POST("/check", v1.InvoiceCheck)    // 日志记录
    InvoiceCheckGroup.POST("/save", v1.SaveInvoice)    // 日志记录


    UploadRouter := Router.Group("file")
    {
        UploadRouter.POST("upload", v1.UploadFile)        // 上传文件
        UploadRouter.POST("uploadTxt", v1.UploadTextFile) // 解析条码文件
        UploadRouter.POST("uploadNotKey", v1.UploadFileNotKey)
        UploadRouter.POST("getUploadToken", v1.GetUploadToken) // 获取上传token
    }

    mbtiRouterGroup := Router.Group("/api/mbti")
    mbtiRouterGroup.POST("/topics", v1.GetMbtiTopics)    // 查所有问题
    mbtiRouterGroup.POST("/addResult", v1.AddMbtiResult)    // 查所有问题
    mbtiRouterGroup.POST("/answer", v1.GetMbtiAnswer)    // 查所有问题


	global.GVA_LOG.Info("router register success")
	return Router
}
